﻿#define _CRT_SECURE_NO_WARNINGS 1

#include <string>
#include <iostream>
#include <thread>
using namespace std;
//
//// C++本身就有div函数。
//int div1(int a1 ,int  b1)
//{
//		return a1 / b1;
//}
//
//int main()
//{
//	// while(1)
//	{
//		int a , b;
//		cin >> a >> b;
//
//		// try和catch应该进行组合匹配进行使用。
//		// 从出现异常的函数栈帧返回到主函数栈帧中都没有出现匹配的catch，就会报错。
//		try
//		{
//			if (b == 0)
//			{
//				string s("被除数不能为零。");
//				throw s;
//			}
//			cout << div1(a, b) << endl;
//		}
//		catch (const string& s)
//		{
//			cout << s << endl;
//		}
//	}
//
//	cout << "End" << endl;
//
//	return 0;
//}

void func2(int y);

void func1(int x = 0)
{
	try
	{
		func2(0);
		if (x == 0)
		{
			string s("无传参");
			throw (s);
		}
	}
	catch(const string& s)
	{
		cout << s << endl;
	}
}

void func2(int y = 0)
{
	try
	{
		if(y == 0)
		{
			string s("无传参");
			throw (s);
		}
	}
	catch (const int j)
	{
		cout << "wucanm" << endl;
	}
}

int main()
{
	func1(0);

	return 0;
}

//double Divide(int a, int b)
//{
//	try
//
//	{
//		// 当b == 0时抛出异常 
//		if (b == 0)
//		{
//			string s("Divide by zero condition!");
//			throw s;
//		}
//		else
//
//		{
//			return ((double)a / (double)b);
//		}
//	}
//	catch (int errid)
//	{
//		cout << errid << endl;
//	}
//	return 0;
//}
//
//void Func()
//{
//	int len, time;
//	cin >> len >> time;
//	try
//
//	{
//		cout << Divide(len, time) << endl;
//	}
//	catch (const char* errmsg)
//	{
//		cout << errmsg << endl;
//	}
//	cout << __FUNCTION__ << ":" << __LINE__ << "⾏执⾏" << endl;
//}
//
//int main()
//{
//	while (1)
//	{
//		try
//
//		{
//			Func();
//		}
//		catch (const string& errmsg)
//		{
//			cout << errmsg << endl;
//		}
//	}
//	return 0;
//}